home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The 640 MEG Shareware Studio 5
/
The 640 Meg Shareware Studio CD-ROM Volume V (Data Express)(1994).ISO
/
amiga
/
rfs156.lha
/
DOCS
/
RFS.doc
Wrap
Text File
|
1994-03-11
|
9KB
|
218 lines
Presenting RFS , the ARexx/WPL/XFREQ File Request Server
Please note, all features have not yet been tested.
Updates Freqable as RFS.rexx
RFS is included in the distribution of the Shelter Mailer
,Porticus. Freqable under the magic name: PORTICUS
Full archive RFS.LHA is updated nightly on 1:167/104 (14.4bps)
and 1:167/151 (Zyxel)
o NODELIST SUPPORT via WPL for either Igen or TrapList
o Xferq.library and LogProc support for WPL mailers.
o allows use of TransAmiga *.desc description files instead of file
notes.
o allows use of DLG FD description files instead of file notes
o Supports GRAB, the WPL File Request Server for Humans
0 Reward for CallBack Verified GRAB users
o Supports WfreqIt, the WPL File Request Forwarder
o Creates FSC-0039 Mail Packets using ROOF's FTSC Registered
Product Code.
o Sends text file instead of mail packet for GRAB requesters
o Supports FTS-0006 Update requests in addition to the new
RFS/QuickSilver/FreqMate human readable update request (HRF)
format.
+/-unix_timestamp <------ fts-0006
+/-Uyymmdd[hhmmss] <------ RFS, QS, FreqMate
o 5D Addressing and Multi-Line through the magic of WPL.
o Includes the fast freq list search utility Fsearch,
written by Frederic Morin for RFS.
o MAGIC filename support.
o PASSWORD protection on file areas, specific files and Magic
filenames.
Format: FILENAME !PASSWORD
o ACCOUNTING support keeps track of the number requests, the number
of files sent and the number of bytes sent to each requesting node.
o FIRST TIME LETTER for callers.
o PERSONAL message for callers can be left by sysop which wil be
included in response file on next call.
o Buffered access to either WPL Log or own logfile for result
statistics.
o Uses WPL Log for progress monitoring.
o Uses freq listing with full PASSWORD and MAGIC name support as
created by RFSfreqlist, Wfilelist, FileMGR, GKupload and other
wnotify/xfreqsh filelist generators.
o NO File I/O during processing other than reading the REQ,
accounting data, writing the response message and searching
the FREQ.LST. Virtually All writes to disk are buffered and
and deferred until after requested files are queued.
RFS is based upon the last soure-released version Roger Clark's
QuickSilver File Request Handler and have all the same features, but has
additional ones as outline above. Although more than 60% of the code is
original, certain QS procedures have been optimized and are used with
thanks to Roger.
Configuration:
All configuration options are in RFS.cfg. The only other external
file required are the xfreqsh compatible list of freqable files.
Freq list:
The freq list is in the format:
request_name [!password] fullpathname
RFSfreqlist.rexx, Wfilelist.rexx and Falcon FileMGR.rexx all create
such a list, with password, magic name and auto fullpath update support.
Other xfreqsh freq list creators such as GKupload and other may be
compliant also.
For DLG systems, this script by Denis Turcotte creates the freq list:
List File:(?|??|???|????)/~(enterarea.txt|POINTERS.FILE|User.file|.info|*.fd|File.dat) FILES NOHEAD LFORMAT "%N %F%N" to t:flist
sort t:flist t:flist
join cfg:magic.lst t:flist as cfg:FREQ.LST
delete t:flist QUIET
WPL usage:
Due to the adoption of RFS as the freq handler for the ROof and
Porticus Shelter Mailers, the config option 'wplport' was removed form the
config file and becomes the command line parameter, wplportbasename.
wplportbasename is the basename of the mailer slave port, excluding
line. RFS will build the LogProc LogGroup from this as follows:
lower(wplport)"wpl"$(line)
so if wplport="PORTICUS", and line=1, the LogGroup porticuswpl1 will be
addressed.
run >NIL: Rx RFS $(wplportbasename) $(line) $(baud) $(host.address) $(infile) $(listed) $(remote.address) $(remote.sysop)
For 68000 or heavily loaded systems, a utility to hold the mailer is
included. It is recommeded that the above be changed to:
run >NIL: Rx STARTRFS $(wplportbasename) $(line) $(baud) $(host.address) $(infile) $(listed) $(remote.address) $(remote.sysop)
wplportbasename - basename of mailer slave port
Line - modem line for request
Baud - modem<->modem bps
host_address - 5d address of system running RFS
InFile - fullpath of REQ file
Listed - 0 = not found in nodelist, 1=found
remote_address - 5d address of requester
remote_sysop - name of requester (from wazoo or emsi or nodelist lookup)
GRAB.wplrx usage:
Address "REXX" RFS wplportbasename line baud HOST.ADDRESS reqname 0 username'#0:0/0.0' username
Note that GRAB user's byte limits are different than those for
mailers. A CallBack verified GRAB user will be permitted 100*baud bytes.
Update Requests:
The FTS-0006 update request specification was written, as with most
other FTSs, to document existing practice with a particular piece of
software. However, it is obviously NOT user friendly, as it requires
conversion between 'human' time and unix time. While this is easily
accomplished by programs which create .REQ files, it is not so simple for
people who write them manually.
Therefore, it was proposed that a new "UPDATE" type be implemented
that can be used by humans. QuickSIlver and FreqMate now include support
for this format.
This is SIMPLY:
+/-Uyymmdd[hhmmss]
Where the time is optional and GMT offset is NOT taken into account.
Both forms (date and datetime) are accepted by RFS.
It has been suggested in the NET_DEV echo that the Nodelist FLAG "XU"
be used to indicate this type of update request handling.
In addition, FTS-0006 standard unix timestamp update requests are
processed.
WildCards and Magic Request Names:
RFS can use AmigaDOS pattern matching facilities. This SHOULD mean
that all pattern matching specifications should work, although this has
NOT been tested. This also means that the underscore bug of AmigaDOS's
pattern matching unfortunately affects operations. If a fullpath name
contains an underscore preceeding the PATTERN, it may be considered a
match by AmigaDOS.
Two configuration options affect how wildcards are processed:
MatchFirst - if TRUE, only the first file matching is send
MultiMagic - if TRUE, multiple files are send for MAGIC names
WPL Installation:
You will need to set the 'listed' variable on nodelist lookup. This
is an extract from ROOF.WPL showing how I do it.
Set systemcmd "$(lookup) $(remote.address) nodelist: $(line) "
SubJump dosys
Cmp $(RC) 0
TrueJump wazoo.4.1
Set listed 0
PutLog "$<time> $(line) $(remote.address) not in NodeList - Lookup:$(RC) $(listed)"
;If we want to accept listed nodes only, then we would do this here:
;Jump badwazoo
wazoo.4.1:
; node was listed!
Set listed 1
CmpI ${$(line).password} ""
TrueJump wazoo_nopassword
; there IS a password
CmpI ${$(line).password} $(remote.password)
TrueJump wazoo_password
PutLog "$<time> $(line) Password Error: His:[$(remote.password)] Ours:[${$(line).password}]"
badwazoo:
PutLog "$<time> $(line) BADWAZOO Host:$(host.address)"
Set RC FALSE
Return
....and this is an extract showing how it is executed in ROOF. Your
implementation may vary.
filenotify:
; RFS wpl/xfreq File Request Server
Set systemcmd "run >NIL: Rx ${REXXDIR}/RFS $(wplport) $(line) $(host.address) $(infile) $(listed) $(remote.address) $(remote.sysop)"
; for 68000 system
;Set systemcmd "run >NIL: Rx ${REXXDIR}/STARTRFS $(wplport) $(line) $(host.address) $(infile) $(listed) $(remote.address) $(remote.sysop)"
Pattern $(remfile) #?.REQ
FalseJump filenotify.2
Set RC $(host.freq)
TrueJump dosys
PutLog "$<time> $(line) $(remote.address) ignored WaZoo No-FREQS"
; We might just want to hang up on this guy :)
; or send him a nasty message
; Jump filenotify.2
.....
; execute an external command
dosys:
; save current state
Set tstate $(state) state "EXTERNAL"
System $(systemcmd)
; restore previous state
Set state $(tstate)
Clear systemcmd tstate
Return
Bugs:
RFS is permanently in Beta Test stage, and may still have some bugs
to be found. If you experience any problems , PLEASE send me a NetMail
at 1:167/104 or leave me feedback with the NOTE command at 1-514-696-6632
explaining the problem.